<?php
require_once '../core/db_abstract_model.php';
require 'messages.php';

class Usuario extends db_abstract_model{
    
    public   $nIdUsuario;
    public   $sAcceso;
    private  $sPassword;
    public   $bActivo;
    public   $bAdministrador;
    public   $dUltimoAcceso;
    private  $dFecha;
    public   $status;
    
    public function get($nIdUsuario='') {
        if (!$nIdUsuario==''){
           $this->query="SELECT * from SCIAUsuarios WHERE nIDUsuario = '".$nIdUsuario."'";
           $this->get_queryresults();
           if (count($this->result_rows)==1)
               {
                foreach ($this->result_rows[0] as $propiedad=>$valor)
                    {
                        $this->$propiedad=$valor;
                    }
               }
           else{
                    $this->msj=MSJ_USER_ERROR;
               }
        
           }
           else{
               $this->msj=MSJ_USER_ERROR;
           }
    }
    
    public function set($user_data=array()) {
        if(array_key_exists('sAcceso',$user_data))//si hay datos de acceso en el array
        {
            if(!$this->getduplicated($user_data['sAcceso'])){
                $this->query="Insert Into SCIAUsuarios (sAcceso,sPassword,bAdministrador,bActivo,dFecha) 
                      values('".$user_data['sAcceso']."','".$user_data['sPassword']."',".$user_data['bAdministrador'].",".$user_data['bActivo'].",CURRENT_TIMESTAMP)";
               $this->execute_nonquery();
            }
            else{
                $this->msj=MSJ_USER_ALREADY;
            }
        }else{
            $this->msj=MSJ_INSERT_ERROR;
        }
    }
    
    public function edit($data=array()) {
        if(!empty($data)){
        $this->query="UPDATE SCIAUsuarios 
                      SET sAcceso='".$data['sAcceso']."',
                          sPassword='".$data['sPassword']."',
                          bActivo='".$data['bActivo']."',
                          bAdministrador='".$data['bAdministrador']."'
                      WHERE nIDUsuario = '".$data['nIdUsuario']."'";
        ;
        $this->execute_nonquery();
        }
        else{
           $this->msj=MSJ_USER_ERROR;
        }
    }
    
    public function delete(){
        ;
    }
    
    public function get_exist_user($user_data=array()){
        if($user_data['sAcceso']!='' && $user_data['sPassword']!=''){
            $this->query="
                          SELECT * from SCIAUsuarios
                          WHERE sAcceso = '".$user_data['sAcceso']."'
                            and sPassword='".$user_data['sPassword']."'
                            and bActivo=1
                         ";
            $this->get_queryresults();
            //echo count($this->result_rows);
            if (count($this->result_rows)==1){
                foreach ($this->result_rows[0] as $propiedad=>$valor){
                    $this->$propiedad=$valor;
                }
                $this->msj=MSJ_USER_FOUND;
                $this->status=1;//usuario existe
            }
            else {
                $this->msj=MSJ_USER_ERROR;
                $this->status=0;//usuario no existe
            }
        }
        else{
            $this->msj=MSJ_USER_EMPTY;
            $this->status=2;//campos vacios
        }
        
    }
    
    public function get_list_users(){
        $this->query="SELECT nIdUsuario,sAcceso,sPassword,bAdministrador,dUltimoAcceso,dFecha from SCIAUsuarios";
        $this->get_queryresults();
        $resultset=array();
        if (count($this->result_rows)>=1){
            $resultset=$this->result_rows;
        }
        else{
            $this->msj=MSJ_NO_USERS;
        }
        return $resultset;
    }
    
    private function getduplicated($sAcceso='') {
        $isduplicated=false;
        if(!$sAcceso=''){
            $this->query="SELECT * from SCIAUsuarios WHERE sAcceso like '".$sAcceso."'";
            $this->get_queryresults();
            if (count($this->result_rows)==1)
            {
                $isduplicated=true;
            }
        }
        return $isduplicated;
    }
    
    public function update_access(){
        $this->query="UPDATE SCIAUsuarios 
                      SET dUltimoAcceso=CURRENT_TIMESTAMP
                      WHERE nIDUsuario = ".$this->nIdUsuario."";
        $this->execute_nonquery();
    }
    function __construct() {
        $this->db_name='DBSCInterno';
    }
    
    function __destruct() {
        unset($this);
    }
}
?>
